/************************************************************
	File:		Message.h
	Author:		Jake Castillo
	Course:		SGD 1304
	Purpose:	CMessage class is the concrete base class for
				all messages sent to CGame.
************************************************************/


#pragma once

// RELATIVE PATH!
#include "IMessage.h"

#include "../Entities/Entity.h"

// Enumeration of message types:
enum MsgType	{ MSG_DESTROY_ENTITY, MSG_CREATE_BULLET, MSG_ADD_ENTITY, MSG_SPAWN_PICKUP };



//***********************************************************
// CMessage class
//	- concrete base class implements IMessage's pure virtual methods
//	- stores the message ID
class CMessage : public IMessage
{
public:
	//*******************************************************
	// Constructor MUST have the ID parameter
	CMessage( MsgType id )		{	m_nMessageID = id;	}
	virtual ~CMessage(void)		{	}
	
	//*******************************************************
	// Accessor:
	virtual MSGID	GetMessageID( void )	final {	return m_nMessageID;	}

private:
	//*******************************************************
	// message id
	MsgType		m_nMessageID;
};

